1. Technical Field
The present invention relates in general to a method and system for data processing, and in particular to a method and system for processing data input to a data processing system utilizing an input device having a number of keys. Still more particularly, the present invention relates to a method and system for selectively smoothing a computer system pointing device.
2. Description of Related Art
Prior art, such as disclosed in Cheng, U.S. Pat. No. 5,661,502, xe2x80x9cSelf-Adjusting Digital Filter for Smoothing Computer Mouse Movementxe2x80x9d, filed Feb. 16, 1996, is incorporated by reference in its entirety here within.
Graphical user interfaces, or xe2x80x9cGUIsxe2x80x9d as they are often designated, have become an increasingly common and popular feature of computers, especially personal computers (PCs). One of the many advantages of such GUIs is that they allow a user to enter commands by selecting and manipulating graphical display elements, such as icons, usually with a pointing device, such as a mouse. A mouse is an input device which, when moved over a surface, moves a mouse pointer across the computer display in a corresponding manner. Typically, a mouse has at least one to three buttons which when pressed, generate to the computer an input relating the user and the location of the mouse on the computer display. xe2x80x9cClickingxe2x80x9d will be used herein to refer to the pressing and releasing of a mouse button, usually the left mouse button, unless otherwise specified. The icons of a GUI are designed to behave in a manner similar to the objects they represent. The Apple Macintosh user interface, Microsoft Windows operating environment, and UNIX X-Windows are common and very popular examples of GUIs, illustrating the fact that the advantages of GUIs over conventional text-based user interfaces are widely recognized.
Clearly, GUIs significantly reduce the amount of information that a user must recall in order to use the computer effectively. For example, instead of having to remember the name of an application program and navigate by manual typing, the user can search files and launch applications in a more intuitive manner, such as by clicking on well organized buttons and icons. As a result of the ever-increasing popularity of GUIs, a variety of different means for organizing and navigating through the various applications and other programs have been developed.
Organizing means, as referred to above, might be a drop-down or pull-down menu. Drop-down menus are activated by moving the mouse pointer over an active area on a menu. While there can be variations on the menu theme, one such embodiment requires a user to click a button when the mouse is positioned over an active menu. When the application controlling the menu receives the position information of the mouse pointer and the click from the user, the active menu is expanded or dropped down uncovering the menu options of the particular menu type. From those options a user is required to move the mouse to a specific option and click on that option.
While the drop-down menu saves desktop space by only expanding a menu upon a specific action by the user, it has a disadvantage of being somewhat cumbersome for those who do not possess the manual dexterity needed to accurately control the mouse pointer on the screen. Because the drop-down menu, or expanded menu options, stays active only when the pointer is located over the hot spot created by the drop-down menu, if the user allows the pointer to move off of that drop-down menu, the menu automatically closes and the user is forced to reinitiate the drop-down menu procedure described above.
Various methods and apparatus currently exist for allowing a user to control certain aspects of computer mouse operation. For example, the Windows interface enables a user to access a mouse dialog box whereby he can adjust the tracking speed, which refers to the speed at which the mouse pointer moves across the display, and double click speed, which refers to the rate at which Windows recognizes double clicks of the mouse. One feature of the mouse that is not controllable using the Windows GUI is the responsiveness of the mouse pointer displayed on the display to mouse movement. Clearly, such a feature would be beneficial for use in connection with any type of user interface, but would be especially useful in connection with GUIs having small buttons and GDEs, such as the drop-down menu interface described above. Providing means by which a user can control the responsiveness of the mouse pointer provides him with the capability to prevent, or at least reduce the possibility, of overshoot. It will be recognized, therefore, that this feature would be especially beneficial in cases where the user is a small child or an older person, neither of whom typically have the manual dexterity necessary to accurately control a mouse or other input device and hence the position of the pointer on the display.
There are a set of disabilities that make the regular operation of a computer difficult, if not impossible. Examples of this are trembling hands/fingers, and numb hands, fingers (which can cause the repeated pressing of a key on the keyboard, or a button on a pointing device). As our population grows older and becomes increasingly dependent on computers, this will become more of an issue.
The solution for this is typically one of two things. 1) The enablement of what is called Slow Keys or Bouncy Keys for the keyboard input device termed xe2x80x9cMouse Keysxe2x80x9d which is the enablement of the number-pad to function as mouse input. Since it is still part of the keyboard, Slow Keys or Bouncy Keys can apply to these xe2x80x9cMouse Keysxe2x80x9d, 2) The use of mouse keys alone, no tremble occurs in the mouse movement since it is generated off of a key stroke, 3) The creation of new input devices (other than keyboard, and traditional pointing devices).
Therefore, what is needed is a mechanism for enabling the user to control the responsiveness of a mouse, and thereby limit the amount of overshoot that can occur.
An advantage of the present invention is that the filtering method is spatial rather than temporal in nature.
Another advantage of the present invention is that the user may select the smoothing method.
Another advantage of the present invention is that the smoothing method may be selected or modified by the operating system or the application being processed.
Another advantage of the present invention is that two or more smoothing methods may be executed sequentially.
Another advantage of the present invention is that smoothing methods may be implemented entirely in the device driver rather than in the operating system.
Another advantage of the present invention is that smoothing method and the smoothing parameters within the method may be selected by the user.
Another advantage of the present invention is that the invention described here consists of a method to smooth the movement of a pointing device so that barriers to adept use of the tool are removed for certain types of users. Such users would include novices, individuals with poor fine motor movement control, individuals with medical conditions or symptoms that cause involuntary tremors or motion that would be translated to movement of the pointing device using the ordinary settings for control. Use of the invention would provide several advantages, including reduction of errors in input, increased usability and user satisfaction with computer system use, individually customizable settings for individual users of the same hardware, and adaptability of the computer system to changes in the user""s physical condition or behavior.
The present invention provides a novel spatial filtering process for smoothing a mouse pointer track on a screen. Initially it is determined if the movement information from a pointing device should be smoothed, and if so, which component. Then the type of smoothing is selected and applied to the movement information which is added to the last mouse pointer position.